package main

import "fmt"

/*
数组限定大小不可变，切片不限定可变
*/
func main() {
	//数组,Go 语言的数组是值，其长度是其类型的一部分，作为函数参数时，是 值传递，函数中的修改对调用者不可见
	b := [...]int{1, 2, 3, 4, 5}
	//切片,Go 语言中对数组的处理，一般采用 切片 的方式，切片包含对底层数组内容的引用，作为函数参数时，类似于 指针传递，函数中的修改对调用者可见
	p := []int{1, 2, 3, 4, 5}
	//var n [10]int
	//var i, j int
	//for i = 0; i < 10; i++ {
	//	n[i] = i + 100
	//}
	//for j = 0; j < 10; j++ {
	//	fmt.Println(n[j])
	//}
	boo(b)
	fmt.Println(b)
	poo(p)
	fmt.Println(p)
}

func boo(nochange [5]int) {
	nochange[0], nochange[len(nochange)-1] = nochange[len(nochange)-1], nochange[0]
}

func poo(change []int) {
	change[0], change[len(change)-1] = change[len(change)-1], change[0]
}
